The present invention relates generally to data processing systems and, more particularly, to the use of storage devices in data processing systems.
Data processing systems may use a file system to store and organize computer files to facilitate access to them. A file system may be viewed as a set of abstract data types that may be used for the storage, organization, manipulation, navigation, access, and retrieval of data. File systems may be categorized into three types: disk file systems, network file systems, and special purpose file systems. Disk file systems are generally designed for the storage of files on a data storage device. Network file systems generally act as a client for a remote file access protocol. Special purpose file systems generally refer to any file system that is not a disk file system or a network file system. A special purpose file system may be, for example, a system in which files are dynamically arranged by software and may be used for communication between computer processes and/or temporary file space.
When a user deletes a file on a computer system, the file system running on the computer processes the delete command and, from the user's point of view, appears to remove the file from memory. In reality, however, conventional file systems leave the file data in physical memory. This is illustrated with reference to the File Allocation Table (FAT) file system in FIG. 1. A host system includes an application program that communicates with a file system 105. The host has a storage system attached thereto. In the FIG. 1 example, the storage device is a flash memory device that includes a Flash Translation Layer (FTL) 110 and a storage device 115 (e.g., a flash memory cell array). The FTL 110 keeps track of the physical location of memory units associated with files in the storage device 115 so the file system 105 need only reference logical memory units.
As shown in FIG. 1, when an application program 100 is used to delete a File 1, the file system 105 removes the name “File 1” from the directory and places a special code in the first character of File 1's FAT entry to indicate that those memory allocation units are available for new files. On the storage system, however, the FTL 110 logically deletes the file, but does not erase the File 1 data from the storage device 115. Instead, the File 1 data remain intact on the storage device 115 and can even be recovered by using, for example, the DOS undelete command followed by the name “File 1.” Thus, when a user deletes a file, it is only logically deleted through the file system 105 and the FTL 110. Defragmenting or formatting the storage device may relocate the memory units occupied by a deleted file in the storage device 115, but the file data may still remain intact on the storage device 115. Over time, saving new files on the storage device 115 may cause some, or all, of the deleted files' memory units to be overwritten, but until then, there are many utilities available that can be used to recover the deleted files.
As some files may contain private or sensitive information, a user may prefer to have files deleted on a storage system so that they are unrecoverable before allowing others to access or share that storage system.